package com.iman.Confucius.web.teacher;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.iman.Confucius.domain.SessionBean;
import com.iman.Confucius.domain.User;
import com.iman.Confucius.domain.UserSInfo;
import com.iman.Confucius.service.ClassManageService;
import com.iman.Confucius.service.UserService;
import com.iman.Confucius.vo.teacher.ClassListVO;
import com.iman.Confucius.vo.teacher.NewStudentsVO;
import com.iman.Confucius.web.BaseController;

/**
 * *************************************************************************
 * 
 * @文件名称: ClassManagerController.java
 *
 * @包路径 : com.iman.Confucius.web.teacher
 *
 * @版权所有: TSW 科技有限公司 (C) 2014
 *
 * @类描述: 加载首页就是这个 。。。。。。。。。。。。。。。。先查下班级 ，在查询 新学员
 * 
 * @创建人: wangxiaolei
 *
 * @创建时间: 2014年12月18日 - 上午12:14:25
 *
 * @修改记录: 
 *        ------------------------------------------------------------------------
 *        ----------------------- 时间 | 修改人 | 修改的方法 | 修改描述
 *        ------------------------
 *        ------------------------------------------------
 *        ----------------------- | | |
 *        ------------------------------------------
 *        -----------------------------------------------------
 * 
 **************************************************************************
 */
@Controller
@RequestMapping(value = "/teacher/*")
public class ClassManagerController extends BaseController {

	@Inject
	private UserService userService;

	@Autowired
	private ClassManageService classService;

	/**
	 * 
	 * Function: 功能说明：初始化 页面 产销班级 和 新加入学员， 新加入学员就是 ，最近的学员 时间排序的 8个 使用说明：
	 * 
	 * @author wangxiaolei DateTime 2014年12月18日 上午12:16:11 返回类型: ModelAndView
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "/init")
	public ModelAndView initjspParamter(HttpServletRequest request) {

		Map model = new HashMap();
		model.put("user", "测试传递变量");
		Long userid = super.getUserIdInSession(request);
		ModelAndView view = null;
		view = new ModelAndView("teacher/main", model);
		List<ClassListVO> classes = classService.getTeacherClass(userid);
		List<NewStudentsVO> students = classService.getNewStudentList(userid);
		view.addObject("classes", classes);
		view.addObject("students", students);
		// 每个做后都要加上这个
		putResourceSrc(view);
		initStudentInfo(request, view);
		return view;
	}

	/**
	 * Function:model 放在这个里面竟然不管用 使用说明：获取用户信息 和 用户等级信息
	 * 
	 * @author wangxiaolei DateTime 2015年1月10日 下午11:02:29 返回类型: void
	 * @param request
	 * @param model
	 */
	private void initStudentInfo(HttpServletRequest request, ModelAndView model) {
		SessionBean session = super.getSession(request);
		UserSInfo usinfo = this.userService.getUserSInfo(session.getUser()
				.getUserId());
		model.addObject("userSinfo", usinfo);
		model.addObject("userinfo", session.getUser());
	}

	/**
	 * 
	 * Function: 功能说明：点击程序查询的按钮 ，显示查询页面 使用说明：
	 * 
	 * @author wangxiaolei DateTime 2014年12月18日 上午12:21:56 返回类型: ModelAndView
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "/class/ofNumber/{classId}")
	public ModelAndView classOfNumber(HttpServletRequest request,
			@Valid @PathVariable String classId) {

		Map model = new HashMap();
		model.put("user", "测试传递变量");

		ModelAndView view = null;

		view = new ModelAndView("teacher/class_of_number", model);

		List<NewStudentsVO> students = classService.getStudentByClass(Long
				.parseLong(classId));
		view.addObject("students", students);

		// 每个做后都要加上这个
		putResourceSrc(view);

		return view;
	}

	// TODO 班级管理里面的 答疑 需要传递班级信息，

}
